package com.bawei.image.skill

import android.content.Context
import android.net.Uri
import android.widget.ImageView
import com.bawei.image.option.ImageOptions
import java.io.File

/**
 * Author: Jason Zhang
 * Date: 2024/4/23
 * Desc: 图片加载工具的方法，接口定义，对外提供统一API
 */
interface IImageLoader {

    /**
     * 从文件中加载图片
     */
    fun loadFileIntoImageView(context: Context, file: File, target: ImageView, options: ImageOptions)

    /**
     * 从工程资源文件下加载图片
     */
    fun loadResourceIntoImageView(context: Context, resId: Int, target: ImageView, options: ImageOptions)

    /**
     * 本地URI地址加载图片
     */
    fun loadUriIntoImageView(context: Context, uri: Uri, target: ImageView, options: ImageOptions)

    /**
     * 从网络URL地址上加载图片
     */
    fun loadUrlIntoImageView(context: Context, url: String, target: ImageView, options: ImageOptions)

    /**
     * 从字节数组中加载图片
     */
    fun loadByteArrayIntoImageView(context: Context, bytes: ByteArray, target: ImageView, options: ImageOptions)

}